package bennyhuo.generic

/**
 * 泛型实例1
 */
//fun <T> maxOf1(a: T, b: T): T {
//    return if (a > b) a else b
//}

/**
 * 添加一个泛型约束实例2
 */
fun <T : Comparable<T>> maxOf2(a: T, b: T): T {
    return if (a > b) a else b
}

/**
 * 添加多个泛型约束实例3
 */
fun <T> maxOf3(a: T, b: T): T
        where T : Comparable<T>, T : () -> Unit {
    return if (a > b) a else b
}

/**
 * 多个泛型参数添加约束实例4
 */
fun <T, R> maxOf4(a: T, b: T): R
        where T : Comparable<T>, T : () -> R, R : Number {
    return if (a > b) a() else b()
}






